package com.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.project.bean.RoleBean;

import java.util.List;

/**
 * 角色实体类
 */
public interface IRoleService {
    /**
     * 查询所有角色
     * @return 角色集合
     */
    List<RoleBean> findAll();

    /**
     * 动态条件分页查询
     * @param pageNO 页码
     * @return 角色分页对象
     */
    IPage<RoleBean> findByItem(Integer pageNO);

    /**
     * 添加新角色，先添加角色表中的信息，获取角色主键之后再进行角色/权限中间表的添加
     * @param role 角色对象
     * @param powerIdArray 拥有的权限数组
     */
    void add(RoleBean role,Integer[] powerIdArray);

    /**
     * 通过id删除角色
     * 先删除改角色对应的权限信息，角色/权限中间表中的所有信息
     * 再删除该角色对应的用户角色信息，用户/角色表信息
     * 最后删除角色表中该角色的信息
     * @param id 角色编号
     */
    void del(Integer id);

    /**
     * 通过id查询角色信息，同时查询该角色对应的权限集合
     * @param id 编号
     * @return 角色对象（角色名称、权限集合）
     */
    RoleBean findById(Integer id);

    /**
     * 通过编号修改角色拥有的权限
     * 先删除角色/权限中间表的信息，然后再添加该角色的新权限
     * @param id 角色编号
     * @param powerIdArray 新权限数组
     */
    void update(Integer id,Integer[] powerIdArray);
}
